【SaaS开发】运维自动化工具研发经验
早鸟课程已经结束,但是SaaS开发挑战赛作品征集活动正在如火如荼地进行,你是否也存在苦于缺少经验,有技术但是没思路的情况,开发小鲸给你带来以下几个模拟实验供你参考,帮助学生们体验SaaS开发流程。
实验架构
产品自助工具SaaS
制作思路
随着公司SaaS开发的用户越来越多,相应出现的问题也越来越多。
查询数据的需求也越来越多,但是不是所有用户都有权限直接访问服务器,来查看日志和数据库。
为了规避风险,提高效率,就有了自助查询日志、数据库的需求。
需求:
1、根据SaaS app_code去获取appt、appo服务器上的日志内容及占用大小。
2、根据用户提供的数据库名去查询用户数据库的磁盘占用大小及表名。
3、查询相关产品(蓝鲸平台)的日志、数据库基本大小。
功能介绍
分成了4个页面,分别是查询SaaS日志,查询SaaS数据库,查询蓝鲸产品日志及数据库,个人查询历史这4个页面
固定查询相应的日志
固定查询相应的日志,这个其实功能也挺方便的,实现也很容易。
每一个SaaS的日志路径都是相同的。
1.进入相应机器
首先需要知道是否有多台APPT、APPO服务器(选一台就行,也可以多台一起查询)
bash
cat /data/install/install.config
或者
source /data/install/utils.fc
echo $APPO_IP # 加上tab 可以查看多个appo
echo $APPT_IP # 加上tab 可以查看多个appt
由于暂时只需知道一个服务器上的地址,统一使用
bash
source /data/install/utils.fc
ssh $APPO_IP
或
ssh $APPO_IP
2.进入相应SaaS路径
bash
cd /data/bkce/paas_agent/apps/logs/$SAAS_ID/
ls
或者
ll -h
通常返回
celery.log component.log supervisord.log $SAAS_ID.log uwsgi.log wb_mysql.log
3.选择相应日志文件
4.选择查看方式
方式一:根据日期查询日志
方式二:按行号查看—过滤出关键字附近的日志
方式三:查看最新200行的日志(可以选择行数)
固定查询相应的数据库
1.填写指定的数据库名
2.选择相应的SQL命令
3.执行作业查询
bash
source /data/install/utils.fc
sql="select * from CHANNELIDCHANGELOG where OLDID=$a order by TIME desc;";
ret = $(mysql -h$MYSQL_HOST -p$MYSQL_PASS -uroot $DB_NAME -e "$sql"');
echo $ret
应用场景
查询SaaS日志、数据库
查询产品日志、数据库
用到什么技术
shell脚本、SQL、蓝鲸作业平台或者标准运维的API、celery。
举例同类产品
日志检索是根据关键字进行监控的 SaaS。但是这个产品日志SaaS更有针对性,有时候专注一个地方会更加方便。
分发执行组合工具SaaS
制作思路
随着深入使用蓝鲸,发现原生作业平台的功能,不能更加灵活的分发文件,需要先知道文件名及地址或者本地上传,而且社区版新建作业也不能同时分发文件、执行脚本。
所以我想先获取服务器上的文件路径及MD5,批量分发文件,并执行脚本。(若确认文件路径。可通过标准运维来实现)。
为了提高工作效率,减少重复工作,就有了自助需求。
需求:
1、作业平台相应业务创建通用查询脚本(查询指定路径的文件,并返回MD5;查询机器指定路径是否文件存在)
2、实现选择业务功能:查询相关业务的信息,生成单选框
3、实现选择主机功能:查询相应业务下的机器信息,并生成 多选框列表
4、实现查询路径功能:调用脚本生成下拉路径,输入相关文件名 ajax 执行查询脚本,并返回到前端,让用户选择机器相应文件
5、实现文件分发功能:选择文件后选择发送的机器及路径
6、实现执行作业功能:判断分发机器的文件是否存在,不存在继续分发,存在执行相应脚本
7、实现历史记录功能
功能介绍
以下仅为个人思路
分成了3个页面,分别是手动配置页面,常用固定配置页面,个人查询历史这3个页面
手动灵活配置
根据用户选择的机器,后端调用脚本(作业平台创建脚本)生成一级目录,选择相应目录,输入的文件名,后端调用脚本(正则查询)并返回相应符合的文件,选择文件,选择分发机器,选择分发成功后需要执行的脚本,查看执行的日志及结果。
优点:通过脚本,避免人为输入文件名错误的风险;通过脚本检查,分发是否成功,成功再执行脚本,更加安全。
缺点:需要不停的选择脚本和机器
常用固定配置页面
为了解决上一个灵活配置的缺点。
运维的工作有时候是固定的,统一修改配置文件,分发文件并执行相关命令,固定机器固定脚本,写成多套场景的脚本流水线。比如:配置系统设置,关闭SELinux;统一刷新防火墙规则;统一安装卸载相应版本软件;批量备份文件并发送到固定一台机器。
对于固定配置页面,只需要选择相应功能的脚本,选择相应的机器,即可完成想要的功能。
个人查询历史
有时候需要查看历史执行结果,这时候可以通过记录的信息直接跳转到作业平台相应的历史记录。
应用场景
批量分发文件并执行脚本等组合使用情景。
用到什么技术
shell脚本、SQL、蓝鲸配置平台、作业平台或者标准运维的API、celery。
举例同类产品
标准运维是一个很好的工具,如果功能不满足,可以考虑开发标准运维插件,或者跟上面的SaaS一样,通过多个脚本来实现自己的重复工作。
这个分发执行组合SaaS更加可以根据自己的工作场景去适应。
日志切割工具SaaS
制作思路
场景:
凌晨3点多一个服务报警,写入日志1G,日志文件总5个G.此时你需要查看日志来进行排查。
对于linux 运维,日志文件的管理及其重要。
任何一个存储数据的软件,都需要定期的备份数据。
如果日志数据文件太大,我们需要将其进行切割,备份,分发至指定机器存储。
在使用蓝鲸作业平台的基础上,为了简化工作,提高效率,就有了自助化的需求,不用远程大量机器,来操作日志文件,就有了开发SaaS的需求。
需求:
1、作业平台相应业务创建通用查询脚本(查询指定路径的文件,并返回MD5;查询机器指定路径是否文件存在)
2、实现选择业务功能:查询相关业务的信息,生成单选框
3、实现选择主机功能:查询相应业务下的机器信息,并生成 多选框列表
4、实现查询路径功能:调用脚本生成下拉路径,输入相关文件名 ajax 执行查询脚本,并返回到前端,让用户选择机器相应文件
5、作业平台相应业务创建切割脚本,检查是否有这个文件,有则将日志重定向到切割后的文件,清空日志。没有则复制一份,清空日志
6、作业平台相应业务创建查看脚本,检查是否有这个文件,有则将输出相应行数文件内容。没有则报错返回 文件不存在。
7、作业平台相应业务创建压缩脚本,检查是否有这个文件,有则删除。压缩文件,并删除源文件。
8、作业平台相应业务创建检查脚本,检查是否有tar.gz结尾文件,有则匹配是否带时间,带时间则看是否超过10天,超过删除(看公司规定保存多久的日志)。不带时间则跳过。
9、实现文件分发功能:选择文件后选择发送的机器及路径。
10、实现执行作业功能:判断分发机器的文件是否存在,不存在继续分发,存在执行相应脚本。
11、实现定时任务功能,将以上作业合成一个定时任务。
12、实现历史记录功能,超链接到作业平台具体执行历史页面。
功能介绍
以下仅为个人思路
分成了3个页面,分别是手动配置页面,常用定时配置页面,个人查询历史这3个页面。
手动灵活配置
根据用户选择的机器,后端调用脚本(作业平台创建脚本)生成一级目录,选择相应目录,输入的文件名,后端调用脚本(正则查询)并返回相应符合的文件,选择文件,前端页面实现,选择是按照时间(月、周、天、小时、分钟)切割 还是按照大小切割,选择是否查看具体文件的内容(多少行),选择是否需要压缩,选择是否需要分发到指定机器,查看执行的日志内容及结果。
优点:通过脚本,避免人为输入文件名错误的风险;通过脚本检查,分发是否成功,成功再执行脚本,更加安全。
缺点:需要不停的选择脚本和机器。
常用固定配置页面
为了解决上一个灵活配置的缺点。
运维的工作有时候是固定的,统一切割日志文件,分发文件并执行相关命令,固定机器固定脚本固定时间,写成多套场景的脚本流水线。比如:定时删除前一个月的日志文件,或者备份储存本周的日志文件等。
对于固定配置页面,只需要选择相应功能的脚本,选择相应的机器,即可完成想要的功能。
个人查询历史
有时候需要查看历史执行结果,这时候可以通过记录的信息直接跳转到作业平台相应的历史记录。
应用场景
批量操作日志文件,分发文件并执行脚本等组合使用情景。
用到什么技术
shell脚本、SQL、蓝鲸配置平台、作业平台或者标准运维的API、celery。
举例同类产品
logrotate程序、crontab定时任务等
这个SaaS可以根据自己的工作场景去适应不同日志文件操作需求。
我们持续向早鸟活动所有学员征集最终实战SaaS作品
两大活动等你来参加!
01
实操学习有礼
参与要求:根据课程作业,实现功能完整的 SaaS 作品即可参加,实验手册的 SaaS也可以。
参与奖励:凡审核合格的 SaaS 将会收到由腾讯蓝鲸智云官方寄出的大礼包一份。
02
终极开发挑战
参与要求:开发服务于生产环境有趣/有实际价值的 SaaS 作品,现场PK!
参与奖励:终极挑战必有终极奖励,万元级大奖等你来拿!
获取更多信息请点击上方图片
七节课程用基础通用的技能培训,让各位具备快速开发构建企业运维/运营系统的技能
点击上方图片开始报名有奖学习
腾讯蓝鲸智云招募合作伙伴合作共赢,是腾讯文化中重要的一部分。腾讯蓝鲸智云团队计划在全国范围内,大力发展生态体系,寻找优质的合作伙伴,共创运维领域的新局面。我们希望为解决方案供应商、集成商、服务商、应用软件开发商、咨询机构等提供更多的增值服务。
招募详情,请点击访问腾讯蓝鲸智云官网:http://bk.tencent.com